package cc.autoapi.pucong.auto.flow.core.flow.execNode.eventBus;


/**
 * 订阅者接口
 *
 * @author zeng wenbin
 * @date Created in 2019/8/12
 */
public interface ISubscriber<T> {

    /**
     * 获取此订阅对象需求的消息类型
     * 需要子类实现
     *
     * @return 消息类型
     */
    String getMessageType();

    /**
     * 优先级，从小到大执行
     *
     * @return
     */
    default Integer getIndexSort() {
        return 100;
    }

    /**
     * 接收消息并处理
     * 需要子类实现
     *
     * @param message 消息实例
     */
    void receiveMessage(T message);
}

